fix: install script to work with bun #20
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
When installing
@rocicorp/zero-sqlite3with Bun (e.g., in a Docker container usingoven/bun:1), the install fails and falls back tonode-gyp, which requires Python and build tools:Root Cause
prebuild-installactually succeeds in downloading and extracting the prebuilt binary under Bun. However, Bun prints a dumb compatibility warning and causes the process to exit with code 1. The original install script used||, so any non-zero exit triggered thenode-gypfallback.Solution
Change the install script to check if the binary file exists before falling back to
node-gyp.This handles the case where
prebuild-installexits non-zero but still successfully downloaded the binary. The check is cross-platform (works on Windows, Linux, macOS).Testing
Verified in
oven/bun:1Docker container - install now completes successfully without requiring Python or build tools.You can test with: